import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;

import javax.swing.*;

/**
 * a retravailler, pour integrer une JPanel est la rafraichir toutes les 2
 * secondes le contenu du JPanel ne se change que si on redimensionne la fenetre
 * 
 * @author lyos2210
 * 
 */
public class Diaporama extends JPanel{

	private Image image = null;
	private Boolean stretch = false; // centre l image dans le

	// Jpanel qd stretch = false sinon l etire

	/**
	 * Constructeur
	 * 
	 * @param file
	 *            nom du fichier
	 */
	public Diaporama(String file) {
		this.image = getToolkit().getImage(file);
	}
	
	public Diaporama()
	{
		RechercheFichier file = new RechercheFichier();
		ArrayList<String> toto = file.getFileList();
		// affiche une image de maniere aleatoire
		//int random = (int) (Math.random() * (toto.size() - 0)) + 0;
		int j = 0;
		final JFrame frame = new JFrame();
		// qd on clique sur la radio rouge pour fermer la fenetre
		// on ne quitte pas le programme mais on ferme juste la 
		// fenetre
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.setVisible(true);
		while (j < toto.size()) {
			frame.setSize(600, 500);
			frame.setLocation(200, 200);
			Diaporama imagePanel = new Diaporama(toto.get(j));
			frame.setContentPane(imagePanel);
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
//			imagePanel.remove(imagePanel);
			imagePanel.repaint();
			imagePanel.revalidate();
			frame.pack();
			// frame.validate();
			//frame.dispose(); // ferme la Jframe
			j++;
		}
	}
	public void paintComponent(Graphics g) {
		g.setColor(Color.GRAY); // couleur de l arriere plan
		int width = this.image.getWidth(this);
		int height = this.image.getHeight(this);
		int x = ((this.getWidth() - width) / 2);
		int y = ((this.getHeight() - height) / 2);
		// a voir comment redimensioner une image
		g.drawImage(this.image, x, y, width , height, this);
	}

	public static void main(String[] args) {
		new Diaporama();	
	}
}